package com.moxiao.yfjh.module.blind.controller.admin.basicSetting.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

import static com.moxiao.yfjh.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * 相亲基础设置 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class BlindBasicSettingBaseVO {

    @Schema(description = "推荐会员匹配度")
    private Integer matchUser;

    @Schema(description = "推荐非会员匹配度")
    private Integer matchNonUser;

    @Schema(description = "喜欢次数", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "喜欢次数不能为空")
    private Integer likeNum;

    @Schema(description = "人工服务上午开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "人工服务上午开始时间不能为空")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime morningBegin;

    @Schema(description = "人工服务上午结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "人工服务上午结束时间不能为空")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime morningEnd;

    @Schema(description = "人工服务下午开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "人工服务下午开始时间不能为空")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime afternoonBegin;

    @Schema(description = "人工服务下午结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "人工服务下午结束时间不能为空")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime afternoonEnd;

    @Schema(description = "评论权限 0仅好友 1全部人", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "评论权限 0仅好友 1全部人不能为空")
    private Byte commentAuth;

    @Schema(description = "审核时限")
    private Integer processTime;

    @Schema(description = "分销佣金比例")
    private Integer commissionRatio;

    @Schema(description = "分销有效时间")
    private Integer effectiveTime;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "状态不能为空")
    private Byte status;

    /**
     * 报名人数：报名人数≥6且为偶数
     */
    @Schema(description = "报名人数≥6且为偶数", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer enrollNumber;

    /**
     * 用户协议
     */
    @Schema(description = "用户协议")
    private String userAgreement;
    /**
     * 隐私协议
     */
    @Schema(description = "隐私协议")
    private String privacyAgreement;
    /**
     * 人脸认证服务协议
     */
    @Schema(description = "人脸认证服务协议")
    private String facialAgreement;

}
